const Koa = require('koa');

const app = new Koa();

const static = require('koa-static'); //处理静态资源的中间件

const views = require('koa-views'); //处理模板引擎

//fs操作文件的模块

const path = require('path');

const fs = require('fs');

//__dirname:当前所在的文件目录
console.log(__dirname,'__dirname')

console.log(process.cwd(),'process.cwd()')

app.use(views(path.join(__dirname, '../views'), {
    extension: 'ejs'
}))

// app.use(async (ctx) => {
//     let title = 'hello koa2'
//     await ctx.render('index', {
//         title
//     })
// })

//koa中间件是一个个async await函数，app.use() 去挂载中间件

//在中间内有两个参数：ctx next

/**
 * ctx: request 请求体 response 响应体 对象封装  ...
 * 
 * next: 执行下一个中间件 
 * 
*/

//koa的中间件执行机制：洋葱圈模型

// app.use(async (ctx,next) => {
//     console.log(ctx);
//     console.log("第一个中间件开始1");
//     await next();
//     console.log("第一个中间结束4")
// })

// app.use(async (ctx,next) => {
//     console.log("第二个中间件开始2");
//     await next();
//     console.log("第二个中间结束3")
// })

//处理静态资源

// process.cwd()

console.log(process.cwd()) //D:\1801B\day02

//process.cwd() 当前进程的工作目录，小黑板的打开的目录

app.use(static(process.cwd()))

app.use(async (ctx,next) => {
    let url = process.cwd();
    if(fs.existsSync(url)){
        //1.判断当前路径是否存在
        if(fs.statSync(url).isDirectory()){
            //2.判断当前路径是文件还是文件夹 是文件夹就返回true
            let list = fs.readdirSync(url);
            console.log(list);
            //render(render的文件,数据)
            await ctx.render('index', {
                list,
                title:'hello'
            })
        }
    }
})


module.exports = app;
